cmake_minimum_required(VERSION 3.19)
project(CPPStudy)

set(CMAKE_CXX_STANDARD 11)

add_executable(main main.cpp)
add_executable(hello day01-base/hello.cpp)
add_executable(comment day01-base/comment.cpp)
add_executable(variable day01-base/variable.cpp)
add_executable(constant day01-base/constant.cpp)
add_executable(keywords day01-base/keywords.cpp)

add_executable(integer day02-datatype/integer.cpp)
add_executable(sizeof day02-datatype/sizeof.cpp)
add_executable(float day02-datatype/float.cpp)
add_executable(character day02-datatype/character.cpp)
add_executable(escape day02-datatype/escape.cpp)
add_executable(string day02-datatype/string.cpp)
add_executable(boolean day02-datatype/boolean.cpp)
add_executable(input day02-datatype/input.cpp)

add_executable(arithmetic day03-operator/arithmetic.cpp)
add_executable(assignment day03-operator/assignment.cpp)
add_executable(comparison day03-operator/comparison.cpp)
add_executable(logic day03-operator/logic.cpp)

add_executable(ifDemo1 day04-flow/ifDemo1.cpp)
add_executable(ifDemo2 day04-flow/ifDemo2.cpp)
add_executable(ifDemo3 day04-flow/ifDemo3.cpp)
add_executable(ifDemo4 day04-flow/ifDemo4.cpp)
add_executable(ifTest day04-flow/ifTest.cpp)
add_executable(triadicDemo day04-flow/triadicDemo.cpp)
add_executable(switchDemo day04-flow/switchDemo.cpp)
add_executable(whileDemo day04-flow/whileDemo.cpp)
add_executable(whileTest day04-flow/whileTest.cpp)
add_executable(dowhileDemo day04-flow/dowhileDemo.cpp)
add_executable(dowhileTest day04-flow/dowhileTest.cpp)
add_executable(forDemo day04-flow/forDemo.cpp)
add_executable(forTest day04-flow/forTest.cpp)
add_executable(loopDemo day04-flow/loopDemo.cpp)
add_executable(loopTest day04-flow/loopTest.cpp)
add_executable(breakDemo day04-flow/breakDemo.cpp)
add_executable(continueDemo day04-flow/continueDemo.cpp)
add_executable(gotoDemo day04-flow/gotoDemo.cpp)

add_executable(arrayDemo1 day05-array/arrayDemo1.cpp)
add_executable(arrayDemo2 day05-array/arrayDemo2.cpp)
add_executable(arrayTest1 day05-array/arrayTest1.cpp)
add_executable(arrayTest2 day05-array/arrayTest2.cpp)
add_executable(arrayTest3 day05-array/arrayTest3.cpp)
add_executable(arrayDemo3 day05-array/arrayDemo3.cpp)
add_executable(arrayDemo4 day05-array/arrayDemo4.cpp)
add_executable(arrayTest4 day05-array/arrayTest4.cpp)

add_executable(functionDemo1 day06-function/functionDemo1.cpp)
add_executable(functionDemo2 day06-function/functionDemo2.cpp)
add_executable(functionDemo3 day06-function/functionDemo3.cpp)
add_executable(functionDemo4 day06-function/functionDemo4.cpp)
add_executable(functionDemo5 day06-function/functionDemo5.cpp)
add_executable(functionDemo6
        day06-function/functionDemo6.cpp
        day06-function/functionDemo6.h)

add_executable(pointerDemo1 day07-pointer/pointerDemo1.cpp)
add_executable(pointerDemo2 day07-pointer/pointerDemo2.cpp)
add_executable(pointerDemo3 day07-pointer/pointerDemo3.cpp)
add_executable(pointerDemo4 day07-pointer/pointerDemo4.cpp)
add_executable(pointerDemo5 day07-pointer/pointerDemo5.cpp)
add_executable(pointerDemo6 day07-pointer/pointerDemo6.cpp)
add_executable(pointerDemo7 day07-pointer/pointerDemo7.cpp)
add_executable(pointerDemo8 day07-pointer/pointerDemo8.cpp)

add_executable(structureDemo1 day08-structure/structureDemo1.cpp)
add_executable(structureDemo2 day08-structure/structureDemo2.cpp)
add_executable(structureDemo3 day08-structure/structureDemo3.cpp)
add_executable(structureDemo4 day08-structure/structureDemo4.cpp)
add_executable(structureDemo5 day08-structure/structureDemo5.cpp)
add_executable(structureDemo6 day08-structure/structureDemo6.cpp)
add_executable(structureTest1 day08-structure/structureTest1.cpp)
add_executable(structureTest2 day08-structure/structureTest2.cpp)

add_executable(communication
        day09-comprehensive/communication.cpp
        day09-comprehensive/communication.h)

add_executable(global day10-memory/global.cpp)
add_executable(stack day10-memory/stack.cpp)
add_executable(heap day10-memory/heap.cpp)
add_executable(new day10-memory/new.cpp)

add_executable(referenceDemo1 day11-reference/referenceDemo1.cpp)
add_executable(referenceDemo2 day11-reference/referenceDemo2.cpp)
add_executable(referenceDemo3 day11-reference/referenceDemo3.cpp)
add_executable(referenceDemo4 day11-reference/referenceDemo4.cpp)
add_executable(referenceDemo5 day11-reference/referenceDemo5.cpp)

add_executable(function2Demo1 day12-function2/function2Demo1.cpp)
add_executable(function2Demo2 day12-function2/function2Demo2.cpp)
add_executable(function2Demo3 day12-function2/function2Demo3.cpp)
add_executable(function2Demo4 day12-function2/function2Demo4.cpp)

add_executable(encapsulationDemo1 day13-encapsulation/encapsulationDemo1.cpp)
add_executable(encapsulationDemo2 day13-encapsulation/encapsulationDemo2.cpp)
add_executable(encapsulationDemo3 day13-encapsulation/encapsulationDemo3.cpp)
add_executable(encapsulationDemo4 day13-encapsulation/encapsulationDemo4.cpp)
add_executable(encapsulationTest1 day13-encapsulation/encapsulationTest1.cpp)
add_executable(encapsulationTest2
        day13-encapsulation/encapsulationTest2.cpp
        day13-encapsulation/point.h
        day13-encapsulation/circle.h)

add_executable(objectDemo1 day14-object/objectDemo1.cpp)
add_executable(objectDemo2 day14-object/objectDemo2.cpp)
add_executable(objectDemo3 day14-object/objectDemo3.cpp)
add_executable(objectDemo4 day14-object/objectDemo4.cpp)
add_executable(objectDemo5 day14-object/objectDemo5.cpp)
add_executable(objectDemo6 day14-object/objectDemo6.cpp)
add_executable(objectDemo7 day14-object/objectDemo7.cpp)
add_executable(objectDemo8 day14-object/objectDemo8.cpp)
add_executable(objectDemo9 day14-object/objectDemo9.cpp)
add_executable(objectDemo10 day14-object/objectDemo10.cpp)
add_executable(thisDemo day14-object/thisDemo.cpp)
add_executable(nullDemo day14-object/nullDemo.cpp)
add_executable(constDemo day14-object/constDemo.cpp)

add_executable(friendDemo1 day15-friend/friendDemo1.cpp)
add_executable(friendDemo2 day15-friend/friendDemo2.cpp)
add_executable(friendDemo3 day15-friend/friendDemo3.cpp)

add_executable(overloadingDemo1 day16-overloading/overloadingDemo1.cpp)
add_executable(overloadingDemo2 day16-overloading/overloadingDemo2.cpp)
add_executable(overloadingDemo3 day16-overloading/overloadingDemo3.cpp)
add_executable(overloadingDemo4 day16-overloading/overloadingDemo4.cpp)
add_executable(overloadingDemo5 day16-overloading/overloadingDemo5.cpp)
add_executable(overloadingDemo6 day16-overloading/overloadingDemo6.cpp)

add_executable(inheritDemo1 day17-inherit/inheritDemo1.cpp)
add_executable(inheritDemo2 day17-inherit/inheritDemo2.cpp)
add_executable(inheritDemo3 day17-inherit/inheritDemo3.cpp)
add_executable(inheritDemo4 day17-inherit/inheritDemo4.cpp)
add_executable(inheritDemo5 day17-inherit/inheritDemo5.cpp)
add_executable(inheritDemo6 day17-inherit/inheritDemo6.cpp)
add_executable(inheritDemo7 day17-inherit/inheritDemo7.cpp)
add_executable(inheritDemo8 day17-inherit/inheritDemo8.cpp)
add_executable(inheritDemo9 day17-inherit/inheritDemo9.cpp)

add_executable(polymorphismDemo1 day18-polymorphism/polymorphismDemo1.cpp)
add_executable(polymorphismTest1 day18-polymorphism/polymorphismTest1.cpp)
add_executable(polymorphismTest2 day18-polymorphism/polymorphismTest2.cpp)
add_executable(polymorphismDemo2 day18-polymorphism/polymorphismDemo2.cpp)
add_executable(polymorphismTest3 day18-polymorphism/polymorphismTest3.cpp)
add_executable(polymorphismDemo3 day18-polymorphism/polymorphismDemo3.cpp)
add_executable(polymorphismTest4 day18-polymorphism/polymorphismTest4.cpp)

add_executable(fileDemo1 day19-file/fileDemo1.cpp)
add_executable(fileDemo2 day19-file/fileDemo2.cpp)
add_executable(fileDemo3 day19-file/fileDemo3.cpp)
add_executable(fileDemo4 day19-file/fileDemo4.cpp)

add_executable(employeeManager
        day20-comprehensive/employeeManager.cpp
        day20-comprehensive/workManager.cpp
        day20-comprehensive/workManager.h
        day20-comprehensive/work.h
        day20-comprehensive/employee.h
        day20-comprehensive/employee.cpp
        day20-comprehensive/manager.h
        day20-comprehensive/manager.cpp
        day20-comprehensive/boss.h
        day20-comprehensive/boss.cpp
        )

add_executable(templateDemo1 day21-template/templateDemo1.cpp)
add_executable(templateDemo2 day21-template/templateDemo2.cpp)
add_executable(templateTest1 day21-template/templateTest1.cpp)
add_executable(templateDemo3 day21-template/templateDemo3.cpp)
add_executable(templateDemo4 day21-template/templateDemo4.cpp)
add_executable(templateDemo5 day21-template/templateDemo5.cpp)
add_executable(templateDemo6 day21-template/templateDemo6.cpp)
add_executable(templateDemo7 day21-template/templateDemo7.cpp)
add_executable(templateDemo8 day21-template/templateDemo8.cpp)
add_executable(templateDemo9 day21-template/templateDemo9.cpp)
add_executable(templateDemo10 day21-template/templateDemo10.cpp)
add_executable(templateDemo11 day21-template/templateDemo11.cpp)
add_executable(templateDemo12
        day21-template/templateDemo12.cpp
        day21-template/person.h
        day21-template/person.cpp
        day21-template/person.hpp)
add_executable(templateDemo13 day21-template/templateDemo13.cpp)
add_executable(templateTest2
        day21-template/templateTest2.cpp
        day21-template/myArray.hpp)

add_executable(vectorBaseDemo1 day22-STLBase/vectorBaseDemo1.cpp)
add_executable(vectorBaseDemo2 day22-STLBase/vectorBaseDemo2.cpp)
add_executable(vectorBaseDemo3 day22-STLBase/vectorBaseDemo3.cpp)

add_executable(stringDemo1 day23-STLString/stringDemo1.cpp)
add_executable(stringDemo2 day23-STLString/stringDemo2.cpp)
add_executable(stringDemo3 day23-STLString/stringDemo3.cpp)
add_executable(stringDemo4 day23-STLString/stringDemo4.cpp)
add_executable(stringDemo5 day23-STLString/stringDemo5.cpp)
add_executable(stringDemo6 day23-STLString/stringDemo6.cpp)
add_executable(stringDemo7 day23-STLString/stringDemo7.cpp)
add_executable(stringDemo8 day23-STLString/stringDemo8.cpp)

add_executable(vectorDemo1 day24-STLVector/vectorDemo1.cpp)
add_executable(vectorDemo2 day24-STLVector/vectorDemo2.cpp)
add_executable(vectorDemo3 day24-STLVector/vectorDemo3.cpp)
add_executable(vectorDemo4 day24-STLVector/vectorDemo4.cpp)
add_executable(vectorDemo5 day24-STLVector/vectorDemo5.cpp)
add_executable(vectorDemo6 day24-STLVector/vectorDemo6.cpp)
add_executable(vectorDemo7 day24-STLVector/vectorDemo7.cpp)

add_executable(dequeDemo1 day25-STLDeque/dequeDemo1.cpp)
add_executable(dequeDemo2 day25-STLDeque/dequeDemo2.cpp)
add_executable(dequeDemo3 day25-STLDeque/dequeDemo3.cpp)
add_executable(dequeDemo4 day25-STLDeque/dequeDemo4.cpp)
add_executable(dequeDemo5 day25-STLDeque/dequeDemo5.cpp)
add_executable(dequeDemo6 day25-STLDeque/dequeDemo6.cpp)

add_executable(judging day26-comprehensive/judging.cpp)

add_executable(stackDemo1 day27-STLStack/stackDemo1.cpp)

add_executable(queueDemo1 day28-STLQueue/queueDemo1.cpp)

add_executable(listDemo1 day29-STLList/listDemo1.cpp)
add_executable(listDemo2 day29-STLList/listDemo2.cpp)
add_executable(listDemo3 day29-STLList/listDemo3.cpp)
add_executable(listDemo4 day29-STLList/listDemo4.cpp)
add_executable(listDemo5 day29-STLList/listDemo5.cpp)
add_executable(listDemo6 day29-STLList/listDemo6.cpp)
add_executable(listTest day29-STLList/listTest.cpp)

add_executable(set_multisetDemo1 day30-STLSet_Multiset/set_multisetDemo1.cpp)
add_executable(set_multisetDemo2 day30-STLSet_Multiset/set_multisetDemo2.cpp)
add_executable(set_multisetDemo3 day30-STLSet_Multiset/set_multisetDemo3.cpp)
add_executable(set_multisetDemo4 day30-STLSet_Multiset/set_multisetDemo4.cpp)
add_executable(set_multisetDemo5 day30-STLSet_Multiset/set_multisetDemo5.cpp)
add_executable(pairDemo day30-STLSet_Multiset/pairDemo.cpp)
add_executable(set_multisetDemo6 day30-STLSet_Multiset/set_multisetDemo6.cpp)
add_executable(set_multisetDemo7 day30-STLSet_Multiset/set_multisetDemo7.cpp)

add_executable(map_multimapDemo1 day31-STLMap_Multimap/map_multimapDemo1.cpp)
add_executable(map_multimapDemo2 day31-STLMap_Multimap/map_multimapDemo2.cpp)
add_executable(map_multimapDemo3 day31-STLMap_Multimap/map_multimapDemo3.cpp)
add_executable(map_multimapDemo4 day31-STLMap_Multimap/map_multimapDemo4.cpp)
add_executable(map_multimapDemo5 day31-STLMap_Multimap/map_multimapDemo5.cpp)

add_executable(grouping day32-comprehensive/grouping.cpp)

add_executable(functionObjectDemo1 day33-function_object/functionObjectDemo1.cpp)
add_executable(functionObjectDemo2 day33-function_object/functionObjectDemo2.cpp)
add_executable(functionObjectDemo3 day33-function_object/functionObjectDemo3.cpp)
add_executable(functionObjectDemo4 day33-function_object/functionObjectDemo4.cpp)
add_executable(functionObjectDemo5 day33-function_object/functionObjectDemo5.cpp)
add_executable(functionObjectDemo6 day33-function_object/functionObjectDemo6.cpp)

add_executable(for_each day34-STLAlgorithm/for_each.cpp)
add_executable(transform day34-STLAlgorithm/transform.cpp)
add_executable(find day34-STLAlgorithm/find.cpp)
add_executable(find_if day34-STLAlgorithm/find_if.cpp)
add_executable(adjacent_find day34-STLAlgorithm/adjacent_find.cpp)
add_executable(binary_search day34-STLAlgorithm/binary_search.cpp)
add_executable(count day34-STLAlgorithm/count.cpp)
add_executable(count_if day34-STLAlgorithm/count_if.cpp)

add_executable(speechTest
        day35-comprehensive/speechTest.cpp
        day35-comprehensive/speechManager.h
        day35-comprehensive/speechManager.cpp
        day35-comprehensive/speaker.h)

add_executable(reservationTest
        day36-comprehensive/reservationTest.cpp
        day36-comprehensive/Identity.h
        day36-comprehensive/student.h
        day36-comprehensive/student.cpp
        day36-comprehensive/teacher.h
        day36-comprehensive/teacher.cpp
        day36-comprehensive/manager.h
        day36-comprehensive/manager.cpp
        day36-comprehensive/globalFile.h
        day36-comprehensive/orderFile.h
        day36-comprehensive/orderFile.cpp
        day36-comprehensive/computerRoom.h)